package com.hjduan.spring.cloud.hystrix.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;

import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;

/**
 * hystrix断路器 
 * 作者： 段浩杰 2017年7月25日
 */
@Service
public class RibbonHelloWordService {
	@Autowired
	RestTemplate restTemplate;

	/**
	 * 注解中 如果出现错误就会访问 hiError方法 。
	 * 
	 * 测试步骤：
	 * 1.当启动注册中心后
	 * 2.启动本服务，直接访问即可验证断路器
	 * 
	 * @param name
	 * @return
	 */
	@HystrixCommand(fallbackMethod = "hiError")
	public String ribbonHelloWordService(String name) {
		return restTemplate.getForObject("http://HJDUAN-SPRING-CLOUD-CONSUMER/hi/{name}", String.class, name);
	}

	public String hiError(String name) {
		return "hi!  " + name + "  error!";
	}

}
